mysql 如何按照索引横向拼接两张表的字段, 利用create table as, join on |
您所在的位置:网站首页 › sql 两个表拼接 › mysql 如何按照索引横向拼接两张表的字段, 利用create table as, join on |
我本来是建了两张表,各自都有 wind_code, date 两列索引,其它的字段不相同。现在为了数据更新方便点,我希望将两张表的字段拼接起来,最后还只保留两列索引。 假设两张表的名称是stock_est 和 stock_mf ,
我想把这两个表拼接成新的表叫stock_d,最初在我的SQL语句是这么写的 create table stock_d as select * from stock_est a right join stock_mf b on a.wind_code = b.wind_code and a.date = b.date 结果报出错误 Error Code: 1060. Dublicate column name 'wind_cdoe' . 究其原因,是拼接两张表的时候因为各自都有wind_code 和 date列,所以新表里就会有两个同名的wind_code列,而这是不被允许的,结果就报错了。
我最后想的办法是先把一个表里的wind_code 和date列改下名称,例如在stock_mf表里,分别改为wind_code_mf 和date_mf,等新表拼接完后再把这两个重复列删去。
SQL 语句如下 create table stock_d as select * from stock_est a right join stock_mf b on a.wind_code = b.wind_code_mf and a.date = b.date_mf 最后 delete wind_code_mf, date.mf from stock_d , 大功告成! Reminder: 在用delete 命令的时候一定要再三check后运行,千万不要不小心把表给删没了,血的教训呐! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |